X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C7D301.F934E8D8@onstor-exch02.onstor.net>; Mon, 30 Jul 2007 16:33:03 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C7D301.F934E8D8"
Content-class: urn:content-classes:message
Subject: RE: func spec for filesystem layout changes planned in zonda release
Date: Mon, 30 Jul 2007 16:33:02 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E04D1FD35@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E04AFB05B@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: func spec for filesystem layout changes planned in zonda release
Thread-Index: AcfOZ1fcj97QLA3/TZyOhVLcbCBEygEYUGuQAA4SsuA=
From: "Jobi Ariyamannil" <jobi.ariyamannil@onstor.com>
To: "Jonathan Goldick" <jonathan.goldick@onstor.com>,
	"dl-Design Review" <dl-designreview@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7D301.F934E8D8
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

Thanks Jonathan.  See my comments inline.

=20

________________________________

From: Jonathan Goldick=20
Sent: Monday, July 30, 2007 9:54 AM
To: Jobi Ariyamannil; dl-Design Review
Subject: RE: func spec for filesystem layout changes planned in zonda
release

=20

1.	Section 5.2,

	a.	Is the only way to find the backup inodes to look in the
parentInum in the inode that is found to be corrupt?  This seems like a
risky place to put the recovery information since it only works if the
inode is mostly OK and only the emap is smashed.  I know that this is
the primary type of corruption you are concerned about but are there any
potential gains by putting it somewhere else?

JOBI>  I also thought about this and had updated the document on
mightydog under \\Mightydog\software\FileSystem
<file:///\\Mightydog\software\FileSystem>  (version 0.2).  Initially, I
thought having these backup inodes to have dynamic inode numbers, but
that may become a problem for eek to locate them.  Now I am thinking to
make use of some of the unused snaproot blocks to place these backup
inodes.

	b.	Are these two new inodes snapable?

JOBI>  If I use some fixed location for these inodes other than the
first inode block, then these inodes will not be snappable.  These
inodes can be reconstructed anytime, so snapshot revert can straighten
them.  EEK is the only consumer of these backup inodes, so even if we
fail to keep them updated in some cases, the impact won't be
significant.

	c.	When we do a COW on the inode file and thereby change
it's emap will we also do a COW on the new inode?  Basically are we
going to completely duplicate all operations on the inode and gennum
inodes to their backups?

JOBI> Whenever we modify emap of primary inodes, the backup copy also
needs to be updated.  If the backup inodes are not snapable, we don't
need COW while modifying them.  They will be modified using unstable
transactions.  We may also consider doing lazy sync of these inodes.

=20

________________________________

From: Jobi Ariyamannil=20
Sent: Tuesday, July 24, 2007 7:56 PM
To: dl-Design Review
Subject: func spec for filesystem layout changes planned in zonda
release

=20

Hi,

=20

Please review the attached func spec for filesystem layout changes
planned for zonda release.

Minor layout changes are made for additional hardening, availability,
recovery and tracing/debugging.

Please let me know any comments you may have.

=20

Regards,

Jobi


------_=_NextPart_001_01C7D301.F934E8D8
Content-Type: text/html;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" =
name=3D"PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal;
	font-family:Arial;
	color:windowtext;}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:934703196;
	mso-list-template-ids:-1719641022;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1
	{mso-list-id:1029405619;
	mso-list-type:hybrid;
	mso-list-template-ids:1116880842 67698703 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Thanks Jonathan.&nbsp; See my =
comments
inline.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Jonathan Goldick</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Monday, July 30, =
2007 9:54
AM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> <st1:PersonName =
w:st=3D"on">Jobi
 Ariyamannil</st1:PersonName>; dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> RE: func spec =
for
filesystem layout changes planned in zonda =
release</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<ol style=3D'margin-top:0in' start=3D1 type=3D1>
 <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level1 =
lfo3'><font size=3D2
     color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Section
     5.2,<o:p></o:p></span></font></li>
 <ol style=3D'margin-top:0in' start=3D1 type=3Da>
  <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level2 =
lfo3'><font size=3D2
      color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Is
      the only way to find the backup inodes to look in the parentInum =
in the
      inode that is found to be corrupt? &nbsp;This seems like a risky =
place to
      put the recovery information since it only works if the inode is =
mostly
      OK and only the emap is smashed. &nbsp;I know that this is the =
primary
      type of corruption you are concerned about but are there any =
potential
      gains by putting it somewhere else?<o:p></o:p></span></font></li>
 </ol>
</ol>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; I also thought about =
this
and had updated the document on mightydog under <a
href=3D"file:///\\Mightydog\software\FileSystem"
title=3D"file://Mightydog/software/FileSystem"><font color=3Dred><span
style=3D'color:red'>\\Mightydog\software\FileSystem</span></font></a> =
(version
0.2).&nbsp; Initially, I thought having these backup inodes to have =
dynamic
inode numbers, but that may become a problem for eek to locate =
them.&nbsp; Now
I am thinking to make use of some of the unused snaproot blocks to place =
these
backup inodes.<o:p></o:p></span></font></p>

<ol style=3D'margin-top:0in' start=3D1 type=3D1>
 <ol style=3D'margin-top:0in' start=3D2 type=3Da>
  <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level2 =
lfo3'><font size=3D2
      color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Are
      these two new inodes snapable?<o:p></o:p></span></font></li>
 </ol>
</ol>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; If I use some fixed =
location
for these inodes other than the first inode block, then these inodes =
will not
be snappable.&nbsp; These inodes can be reconstructed anytime, so =
snapshot
revert can straighten them.&nbsp; EEK is the only consumer of these =
backup
inodes, so even if we fail to keep them updated in some cases, the =
impact won&#8217;t
be significant.<o:p></o:p></span></font></p>

<ol style=3D'margin-top:0in' start=3D1 type=3D1>
 <ol style=3D'margin-top:0in' start=3D3 type=3Da>
  <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level2 =
lfo3'><font size=3D2
      color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>When
      we do a COW on the inode file and thereby change it&#8217;s emap =
will we
      also do a COW on the new inode? &nbsp;Basically are we going to
      completely duplicate all operations on the inode and gennum inodes =
to
      their backups?<o:p></o:p></span></font></li>
 </ol>
</ol>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt; Whenever we modify emap of =
primary
inodes, the backup copy also needs to be updated.&nbsp; If the backup =
inodes
are not snapable, we don&#8217;t need COW while modifying them.&nbsp; =
They will
be modified using unstable transactions.&nbsp; We may also consider =
doing lazy
sync of these inodes.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Jobi Ariyamannil</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Tuesday, July 24, =
2007 7:56
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> func spec for =
filesystem layout
changes planned in zonda release</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hi,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Please review the attached func spec for filesystem =
layout
changes planned for zonda release.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Minor layout changes are made for additional =
hardening,
availability, recovery and =
tracing/debugging.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Please let me know any comments you may =
have.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Regards,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Jobi<o:p></o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C7D301.F934E8D8--
